package com.my.leetCode;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @author Lelezhang
 * @create 2021-07-19 21:47
 */
public class LeetCode169 {
    /**
     * 169. 多数元素
     * 简单
     * 相关标签
     * 相关企业
     * 给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
     * <p>
     * 你可以假设数组是非空的，并且给定的数组总是存在多数元素。
     * <p>
     * <p>
     * <p>
     * 示例 1：
     * <p>
     * 输入：nums = [3,2,3]
     * 输出：3
     * 示例 2：
     * <p>
     * 输入：nums = [2,2,1,1,1,2,2]
     * 输出：2
     *
     * @param args
     */
    public static void main(String[] args) {
//        String s = "A man, a plan, a canal: Panama";
        String s = "0P";
//        String s = "aba";
//        System.out.println(isPalindrome(s));
    }

    public int majorityElement(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
        }
        Set<Map.Entry<Integer, Integer>> entries = map.entrySet();
        for (Map.Entry<Integer, Integer> entry : entries) {
            Integer key = entry.getKey();
            Integer value = entry.getValue();
            if(value > nums.length/2) {
                return key;
            }
        }
        return -1;
    }
}
